home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_100 / 111_01 / sq.h < prev    next >
Text File  |  1985-08-19  |  2KB  |  49 lines

  1. /* Definitions and external declarations */
  2. char    debug;    /* Boolean flag */
  3.  
  4. /* *** Stuff for first translation module *** */
  5. int likect;    /*count of consecutive identical chars */
  6. int lastchar, newchar;
  7. char state;
  8. /* states */
  9. #define NOHIST    0     /*don't consider previous input*/
  10. #define SENTCHAR 1     /*lastchar set, no lookahead yet */
  11. #define SENDNEWC 2     /*newchar set, previous sequence done */
  12. #define SENDCNT 3     /*newchar set, DLE sent, send count next */
  13.  
  14. /* *** Stuff for second translation module *** */
  15. #define NOCHILD -1    /* indicates end of path through tree */
  16. #define NUMNODES (NUMVALS + NUMVALS - 1)    /* nbr of nodes */
  17.  
  18. #define MAXCOUNT 65535    /* biggest unsigned integer */
  19.  
  20. /* The following array of structures are the nodes of the
  21.  * binary trees. The first NUMVALS nodes becomethe leaves of the
  22.  * final tree and represent the values of the data bytes being
  23.  * encoded and the special endfile, SPEOF.
  24.  * The remaining nodes become the internal nodes of the final tree.
  25.  */
  26.  
  27. struct    nd {
  28.     unsigned weight;    /* number of appearances */
  29.     char tdepth;        /* length on longest path in tre*/
  30.     int lchild, rchild;    /* indexes to next level */
  31. } node[NUMNODES];
  32.  
  33. int dctreehd;    /*index to head node of final tree */
  34.  
  35. /* This is the encoding table:
  36.  * The bit strings have first bit in  low bit.
  37.  * Note that counts were scaled so code fits unsigned integer
  38.  */
  39.  
  40. char codelen[NUMVALS];        /* number of bits in code */
  41. unsigned code[NUMVALS];        /* code itself, right adjusted */
  42. unsigned tcode;            /* temporary code value */
  43.  
  44.  
  45. /* Variables used by encoding process */
  46. int curin;    /* Value currently being encoded */
  47. char cbitsrem;    /* Number of code string bits remaining */
  48. unsigned ccode;    /* Current code shifted so next code bit is at right */
  49.  * b